package controller.services.impl.reprodutivo;

import java.io.Serializable;
import java.util.List;

import model.interfaces.DAOFactory;
import model.interfaces.HibernateGenericDAO;
import model.vos.reprodutivo.Porca;

public class ImplPorcaService implements Serializable{
	
	
	private static final long serialVersionUID = 1L;
		private DAOFactory daoFactory;
		private HibernateGenericDAO<Porca> daoPorca;
		private Porca porca;
		
		public Porca getPorca() {
			return porca;
		}


		public void setPorca(Porca porca) {
			this.porca = porca;
		}


		@SuppressWarnings("unchecked")
		public ImplPorcaService() {
			this.daoFactory = DAOFactory.getDAOFactory(DAOFactory.HIBERNATE);
			this.porca = new Porca();
		this.daoPorca = (HibernateGenericDAO<Porca>) daoFactory
				.getPorcaDAO();
		}
		
		
		public Porca pesquisarPorId(Serializable id) {
			try {
				Porca r = (Porca) this.daoPorca.pesquisarPorId(id);
				return r;
			} finally {
				this.daoFactory.encerrar();
			}

		}

		public List<Porca> listarTodos() {
			try {
				List<Porca> porcas = this.daoPorca.listarTodos();
				return porcas;

			} finally {
				this.daoFactory.encerrar();
			}
		}

		public Porca salvar(Porca porca) {
			this.daoFactory.iniciarTransacao();
			Porca r = (Porca) this.daoPorca.salvar(porca);
			this.daoFactory.encerrar();
			return r;
		}

		
		public void excluir(Porca r) {
			this.daoPorca.excluir(r);
			this.daoFactory.encerrar();
		}

		
		public void alterar(Porca r) {
			this.daoFactory.iniciarTransacao();
			this.daoPorca.alterar(r);
			this.daoFactory.encerrar();

		}

}
